Memory devices are typically provided as internal, semiconductor, integrated circuits in computers or other electronic devices. There are many different types of memory including random-access memory (RAM), read only memory (ROM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), and flash memory.
Flash memory devices have developed into a popular source of non-volatile memory for a wide range of electronic applications. Flash memory devices typically use a one-transistor memory cell that allows for high memory densities, high reliability, and low power consumption. Changes in threshold voltage of the cells, through programming of charge storage structures, such as floating gates or trapping layers or other physical phenomena, determine the data state of each cell. Common uses for flash memory include personal computers, personal digital assistants (PDAs), digital cameras, digital media players, digital recorders, games, appliances, vehicles, wireless devices, cellular telephones, and removable memory modules, and the uses for flash memory continue to expand.
Flash memory may utilize architectures known as NOR flash and NAND flash. The designation is derived from the logic used to read the devices. In a NOR flash architecture, a column of memory cells are coupled in parallel with each memory cell coupled to a data line, such as a bit line. A “column” refers to a group of memory cells that are commonly coupled to a data line, such as a bit line. It does not require any particular orientation or linear relationship, but instead refers to the logical relationship between memory cell and data line.
Typically, the array of memory cells for NAND flash memory devices is arranged such that the control gate of each memory cell of a row of the array is connected together to form an access line, such as a word line. Columns of the array include strings (often termed NAND strings) of memory cells connected together in series, source to drain, between a pair of select lines, a source select line and a drain select line. The source select line includes a source select gate at each intersection between a NAND string and the source select line, and the drain select line includes a drain select gate at each intersection between a NAND string and the drain select line. Each source select gate is connected to a source line, while each drain select gate is connected to a data line, such as column bit line.
Content addressable memories (CAM) are memories that implement a lookup table function in a single clock cycle. They use dedicated comparison circuitry to perform the lookups. CAM applications are often used in network routers for packet forwarding and the like. Each individual memory cell in a CAM usually requires its own comparison circuit in order to allow the CAM to detect a match between a bit of input data, such as an input feature vector (e.g., sometimes referred to as a key or key data) with a bit of data, such as a data feature vector, stored in the CAM. However, not all bits are the same. For example, binary expressions may include a most significant bit (MSB), a least significant bit (LSB), and bits between the MSB and LSB.
For the reasons stated above, and for other reasons stated below which will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art for identifying and differentiating between MSBs, LSBs and bits between the MSB and LSB in comparisons between input data and data stored in memory.